home *** CD-ROM | disk | FTP | other *** search
- #!/bin/sh
- # Stolen from the debian kdm setup, aren't I sneaky
- # Plus a lot of fun stuff added
- # -George
-
- PATH="/usr/bin:$PATH"
- OLD_IFS=$IFS
-
- gdmwhich () {
- COMMAND="$1"
- OUTPUT=
- IFS=:
- for dir in $PATH
- do
- if test -x "$dir/$COMMAND" ; then
- if test "x$OUTPUT" = "x" ; then
- OUTPUT="$dir/$COMMAND"
- fi
- fi
- done
- IFS=$OLD_IFS
- echo "$OUTPUT"
- }
-
- sysresources=/etc/X11/Xresources
-
- # merge in defaults
- if [ -f "$sysresources" ]; then
- xrdb -merge "$sysresources"
- fi
-
- sysmodmap=/etc/X11/Xmodmap
-
- XMODMAP=`gdmwhich xmodmap`
- if [ "x$XMODMAP" != "x" ] ; then
- if [ "x$GDM_PARENT_DISPLAY" = "x" ]; then
- if [ -f $sysmodmap ]; then
- $XMODMAP $sysmodmap
- fi
- else
- ( DISPLAY=$GDM_PARENT_DISPLAY XAUTHORITY=$GDM_PARENT_XAUTHORITY $XMODMAP -pke ) | $XMODMAP -
- fi
-
- #
- # Switch Sun's Alt and Meta mod mappings
- #
-
- UNAME=`gdmwhich uname`
- PROCESSOR=`$UNAME -p`
- if [ "x$PROCESSOR" = "xsparc" ]; then
- if $XMODMAP | grep mod4 | grep Alt > /dev/null 2>/dev/null
- then
- $XMODMAP -e "clear Mod1" \
- -e "clear Mod4" \
- -e "add Mod1 = Alt_L" \
- -e "add Mod1 = Alt_R" \
- -e "add Mod4 = Meta_L" \
- -e "add Mod4 = Meta_R"
- fi
- fi
- fi
-
- SETXKBMAP=`gdmwhich setxkbmap`
- if [ "x$SETXKBMAP" != "x" ] ; then
- # FIXME: is this all right? Is this completely on crack?
- # What this does is move the xkb configuration from the GDM_PARENT_DISPLAY
- # FIXME: This should be done in code. Or there must be an easier way ...
- if [ -n "$GDM_PARENT_DISPLAY" ]; then
- # Hurray for awk
- XKBARGS=$( (DISPLAY=$GDM_PARENT_DISPLAY XAUTHORITY=$GDM_PARENT_XAUTHORITY $SETXKBMAP -v -v) | awk '/^model:/ { printf "-model %s ", $2 } /^layout:/ { printf "-layout %s ", $2 } /^variant:/ { printf "-variant %s ", $2 } /^options:/ { printf "-option %s ", $2}' )
- XKBSETUP=`( DISPLAY=$GDM_PARENT_DISPLAY XAUTHORITY=$GDM_PARENT_XAUTHORITY $SETXKBMAP -v )`
- if [ -n "$XKBARGS" ]; then
- $SETXKBMAP $XKBARGS
- fi
- fi
- fi
-
- exit 0
-